#include<iostream>

using namespace std;

int min(int, int, int);
long long min(long long, long long, long long);
double min(double, double);

int main(void)
{
    int a=1, b=2, c=3;
    cout<<min(a, b, c)<<endl;

    long long al=100, bl=200, cl=300;
    cout<<min(al, bl, cl)<<endl;

    double ad=1.1, bd=2.2;
    cout<<min(ad, bd)<<endl;

    return 0;
}

int min(int a, int b, int c)
{
    if(a<b) b=a;
    if(b<c) c=b;
    return c;
}

long long min(long long a, long long b, long long c)
{   // type different from the above
    if(a<b) b=a;
    if(b<c) c=b;
    return c;
}

double min(double a, double b)
{   // type and numbers 
    if((b-a)>1e-5) b=a;
    return a; 
}